package com.basic.modules.nykf.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.basic.common.annotation.DictParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 咨询记录实体类
 */
@Data
@TableName("n_ykf_consultation")
public class ConsultationRecordsEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId
    private Long zxid;

    /**
     * 咨询客户类型(字典:marketType)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxkhlxVal;

    /**
     * 咨询客户类型
     */
    @DictParam(field = "zxkhlxVal", targetField = "zxkhlxName", dictType = "marketType")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxkhlxName;

    /**
     * 咨询拓客渠道(字典:expandType)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxtkqdVal;

    /**
     * 咨询拓客渠道
     */
    @DictParam(field = "zxtkqdVal", targetField = "zxtkqdName", dictType = "expandType")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxtkqdName;

    /**
     * 咨询客户名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxkhmc;

    /**
     * 客户有效性(字典:khyxx)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String khyxxVal;

    /**
     * 客户有效性
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "khyxxVal", targetField = "khyxxName", dictType = "khyxx")
    private String khyxxName;

    /**
     * 是否报价(字典:sfbj)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String sfbjVal;

    /**
     * 是否报价
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "sfbjVal", targetField = "sfbjName", dictType = "sfbj")
    private String sfbjName;

    /**
     * 报价金额
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal bjje;

    /**
     * 当前节点(字典:dqjd)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String dqjdVal;

    /**
     * 当前节点
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "dqjdVal", targetField = "dqjdName", dictType = "dqjd")
    private String dqjdName;


    /**
     * 跟进时间
     */
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    private Date gjsj;


    /**
     * 跟进方式(字典:zxgjfs)
     */
    @TableField(exist = false)
    private String gjfsVal;

    /**
     * 跟进方式
     */
    @TableField(exist = false)
    @DictParam(field = "gjfsVal", targetField = "gjfsName", dictType = "zxgjfs")
    private String gjfsName;

    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date xcgjsj;

    /**
     * 重要程度
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer zycd;

    /**
     * 报价明细及其他
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String bjmxjqt;

    /**
     * 咨询店铺平台(字典:platform)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpptVal;

    /**
     * 咨询店铺平台
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdpptVal", targetField = "zxdpptName", dictType = "platform")
    private String zxdpptName;

    /**
     * 咨询店铺名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpmc;

    /**
     * 咨询店铺类目(字典:shopType)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdplmVal;

    /**
     * 咨询店铺类目
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdplmVal", targetField = "zxdplmName", dictType = "shopType")
    private String zxdplmName;

    /**
     * 咨询店铺等级(字典:difficultyGrade)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpdjVal;

    /**
     * 咨询店铺等级
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdpdjVal", targetField = "zxdpdjName", dictType = "difficultyGrade")
    private String zxdpdjName;

    /**
     * 咨询店铺城市
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpcs;

    /**
     * 咨询店铺客单(字典:dpkd)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpkdVal;

    /**
     * 咨询店铺客单
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdpkdVal", targetField = "zxdpkdName", dictType = "dpkd")
    private String zxdpkdName;

    /**
     * 咨询店铺销量(字典:dpxl)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpxlVal;

    /**
     * 咨询店铺销量
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdpxlVal", targetField = "zxdpxlName", dictType = "dpxl")
    private String zxdpxlName;

    /**
     * 咨询店铺分类(字典:dpdj)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxdpflVal;

    /**
     * 咨询店铺分类
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxdpflVal", targetField = "zxdpflName", dictType = "dpdj")
    private String zxdpflName;

    /**
     * 咨询联系人
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxlxr;

    /**
     * 联系人手机号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String lxrsjh;

    /**
     * 其它联系方式
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String qtlxfs;

    /**
     * 咨询日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date zxrq;

    /**
     * 公司对接人userId
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long gsdjrUserId;

    /**
     * 公司对接人name
     */
    @TableField(exist = false)
    private String gsdjrUserName;

    /**
     * 咨询业务条线(字典:zxywtx)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxywtxVal;

    /**
     * 咨询业务条线
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxywtxVal", targetField = "zxywtxName", dictType = "zxywtx")
    private String zxywtxName;

    /**
     * 咨询业务类型(字典:zxywlx)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxywlxVal;

    /**
     * 咨询业务类型
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxywlxVal", targetField = "zxywlxName", dictType = "zxywlx")
    private String zxywlxName;

    /**
     * 咨询服务班次(字典:serviceShift)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxfwbcVal;

    /**
     * 咨询服务班次
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxfwbcVal", targetField = "zxfwbcName", dictType = "serviceShift")
    private String zxfwbcName;

    /**
     * 咨询收费模式(字典:sfms)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxsfmsVal;

    /**
     * 咨询收费模式
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @DictParam(field = "zxsfmsVal", targetField = "zxsfmsName", dictType = "sfms")
    private String zxsfmsName;

    /**
     * 咨询量(日均)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer zxl;

    /**
     * 转化率(%)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal zhl;

    /**
     * 平均响应
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer pjxy;

    /**
     * 满意度(%)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal myd;

    /**
     * 退款时长
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer tksc;

    /**
     * 创建人id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long createUserId;

    /**
     * 创建人name
     */
    @TableField(exist = false)
    private String createUserName;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 填充率
     */
    private Double tcl;

    /**
     * 总跟进记录数
     */
    @TableField(exist = false)
    private int zgjjls;

    @TableField(exist = false)
    private String keyword;

    @TableField(exist = false)
    private List<Map> customizeQueryCondition;

    @TableField(exist = false)
    private String fileIds;
}